---
title: "概要"
---

**Pipy**は、クラウド、エッジ、IoT向けのプログラム可能なネットワークプロキシです。

C++言語で書かれたPipyは、究極的に軽量で高速です。また、Javaスクリプト言語をカスタマイズしたバージョンのPipyJSを使ってプログラミングが可能です。

## Pipyの特長

### 多目的

Pipyは高性能なリバースプロキシとして最も使われますが、本来の力は、さまざまなプラグインできる組立てブロック、すなわちフィルターであり、いかなる制約にも強いられずに、フィルターを組み合わせられることです。Pipyをどう使うのかは完全に皆さん次第ということです。これまで、プロトコルコンバータ、トラフィックレコーダ、メッセージsinger/verifier、サーバーレスファンクションスタータ、ヘルスチェッカー等々としてPipyが利用されたことがあります。

### 高速

PipyはC++で書かれています。非同期ネットワークを活用します。割り当てられたリソースはプールされて再利用されます。データは可能な限りポインタによって内部的に転送され、メモリ帯域幅への負担を最小限に抑えます。あらゆる点で高速にできています。

### 極小

ワーカーモードでPipyをビルドすると、その実行ファイルは10MB程度で、外部への依存性はゼロです。Pipyを使用すると、ダウンロードと起動の時間が最も速いのが実感できるでしょう。

### プログラミング性

Pipyの核となるのは、ECMA標準のJavaScriptをカスタマイズしたPipyJSを実行するスクリプトエンジンです。世界で最も普及しているプログラミング言語を使うことで、PipyはYAMLなどに比べても圧倒的な表現力を発揮します。

### オープン性

Pipyはオープンソースよりもオープンです。どんな情報も詳細をブラックボックスに隠したりはしないので、自分が何をしているかを常に把握できます。しかし、恐れることはありません。さまざまな部品がどのように連携するかを理解するために、ロケット科学者が必要なわけではないのです。実際、自分ですべてを完全にコントロールできるようになるので、もっと楽しくなるはずです。

## まず初めに

クイックスタート

初めてPipyを使う場合は、[クイックスタート](/getting-started/quick-start) を参照して、Pipyの最初の使い方を見てください。

### 概念

慣れてきたら、[概念](/intro/concepts) を読むと、後のドキュメントを読むときに頻繁に出てくるいくつかの重要な概念を理解する強い基礎になります。

### チュートリアル

全体像がつかめたら、[チュートリアル](/tutorial/01-hello) のステップに従って一つ一つ試してみましょう。楽しくなること間違いなしです！
